#include <iostream>
#include <iomanip>
#include <vector>
#include <cstdlib>
#include <ctime>

#define PV_FLAG    5566
#define ALPHA_FLAG 7788
#define BETA_FLAG  9900
#define valUNKNOWN 94502012
#define TABLE_SIZE 1048576
//#define TABLE_SIZE 1024
using namespace std;


struct HashNode
{
	int  key;
	char depth;
	int  hashf;
	int  val;
};

unsigned long Zobrist[32][32];
HashNode Hash_Table[TABLE_SIZE];
unsigned long ZobristKey;
int n = 100;
void initZobrist()
{
     srand((unsigned int)time(0));
     for(int i=0;i<32;i++)
     { 
         for(int j=0;j<32;j++)
         {
             unsigned long a=rand();
             while(a<5314855)
                a*=rand();
             Zobrist[i][j] = a;
            // cout << Zobrist[i][j] << endl;
         }
     }
     
}

/*
class Table
{
public:
	Table();
	~Table();
	unsigned int Zobrist[34][32];
    void initZobrist()
	{		//fill Zobrist using rand
	
	}
	void AddToTable(); //adds a new item to the table
    void TableDelete(int searchKey); //deletes an item from the table
    int Size; //number of items in the table
    int GetSize()
    {
        return Size;
    }

protected:
    int GetIndex (int searchKey); //determines which table index to work with
 
};
*/
